IF ... ELSE
IF 条件判定(制御命令)
書式
IF 条件式 実行文1
IF 条件式 実行文1 ELSE 実行文2
説明
条件式の真偽判定を行い、真の場合は実行文1を実行します。
真の場合にELSEがある場合、ELSE文以降の命令文は実行しません。
偽の場合、ELSEがある場合、実行文2を実行します。なければ次の行にスキップします。
真偽は次の条件となります。
真:評価した値が0以外である
偽:評価した値が0である
真偽判定を行う条件式には定数、数値、関数を含む計算式が記述できます。
式の例:
code:if_sample1.bas
IF A > 5 B=B-1
IF A+1 PRINT A
IF A & 1 TONE 440,200
IF INKEY() = ASC("A") GOTO 100
定数の例:
code:if_sample2.bas
IF HIGH GOTO 100
数値の例:
code:if_sample3.bas
IF 123 PRINT "123"
関数の例:
code:if_sample4.bas
IF RND(1) X=X+1
注意:ELSE利用の制約(ぶら下がりELSEに関する補足)
IF文をネストして利用した場合、ELSE文は直前のIF文に対応します。
例:IF A=1 IF B=1 ? "A,B=1" ELSE ? "A=1,B<>1"
上記のELSEは2番目のIF文に対応します。
この「ELSE文は直前のIF文に対応」の条件で、ELSE文にIF文をネスト出来ます。
例: IF A=1 IF B=1 ? "A,B=1" ELSE IF B=2 ? "A=1,B=2" ELSE IF B=3 ?"A=1,B=3"
上記では、A=1,B=1,2,3の条件に対して対応する表示メッセージを表示する例です。
エラーメッセージ
IF without condition :条件式が定義されていない
Overflow :指定した数値が-32768 ~ 32767を超えている
利用例
yを押したら、"Y key" を表示して終了、その他のキーなら"End" を表示して終了する
何も押されていなければ10行から30行をループする。
code:if_sample5.bas
10 A=INKEY()
20 IF A=ASC("y") PRINT "Y key":END ELSE IF A<>0 PRINT "End":END
30 GOTO 10
関連項目